Various types of optical displays are commonly used in a wide variety of applications. For example, computing devices such as personal computers, workstations, and personal digital assistants (PDA) and communication devices such as mobile phones and radios all use various types of displays. Displays are also commonly used for a variety of purposes on vehicles such as automobiles and aircraft. Optical displays can use a variety of different display mechanisms, such as LCD, CRT, projection and other devices.
In some display applications it is desirable to support multiple “windows” within a display, where each “window” is a portion of the display viewing area that is assigned a particular display task. For example, in an aircraft application, a multi-function display can be used to provide a variety of different types of information to the pilot by dividing the display into a plurality of windows, and assigning each window a display task. For example, in a multi-function display one window can be assigned to display primary flight control information such as airspeed, attitude, altitude and horizontal situation. Another window can be used to provide navigation information such as heading and location. Another window can be used to provide information such as electrical, hydraulic, or cabin pressure values or status.
In many applications, different windows in the display may have different processing requirements and criticality levels. Some windows may need to be updated at a relatively fast rate, while other windows may have less stringent update rate requirements. Some windows may, by virtue of their size or complexity, require more processing time to update. Finally, some windows may have a greater priority than other windows.
For example, in the aircraft example discussed above, the primary flight control information is of critical importance and must be updated at a high rate and at consistent update intervals in order to maintain smooth operation. Conversely, the navigation information is of less critical importance, requires considerably more rendering time due to its complexity, and its required update rate is typically significantly lower. In such an application, it is necessary to ensure that all windows receive the processing resources needed at regular intervals in order to assure that they can meet their required update rate and maintain smooth (non-jerky) operation.
To accomplish this care must be taken to assure that the processing for one window does not “starve” the other windows of needed processing resources. Otherwise, when the processing of graphics for one window is excessive, the other windows may fail to be updated as required. Unfortunately, most graphics processors do not have a mechanism to ensure that in a display with multiple windows that each window receives an appropriate allocation of processing time.
Thus, what is needed is a graphics driver system that allocates processing resources to multiple windows and enforces that allocation to assure that each window receives its needed processing allocation.